const { DataTypes, Model, Deferrable } = require("sequelize");
const sequelize = require("../../sequelize")
const {delFile}=require("../../../util/file")
/**
 * 定义图片模型
 */
class Image extends Model {
    /**
     * 添加图片
     * @param {图库id} image_class_id 
     * @param {图片名称} filename 
     */
    static async addImage(image_class_id,filename){
        return await this.create({
            url:"http://101.42.22.211:8011/static/"+filename,
            path:"assets/"+filename,
            name:"static/"+filename,
            image_class_id:image_class_id
        })
    }
    /**
     * 批量删除图片
     * @param {id组} ids 
     */
    static async deleteImage(ids){
        await this.findAll({
            where:{
                id:ids
            }
        }).then(row=>{
            row.forEach(value=>{
                delFile(value.path)
            })
        })
        return await this.destroy({
            where:{
                id:ids
            }
        })
    }
    /**
     * 更新图片，只允许更新名称
     * @param {图片id} id 
     * @param {图片新名称} name 
     */
    static async updateImage(id,name){
        return await this.update({name:name},{
            where:{
                id:id
            }
        })
    }
};
Image.init({
    id:{
        type:DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    url:{
        type:DataTypes.STRING
    },
    name:{
        type:DataTypes.STRING,
    },
    path:{
        type:DataTypes.STRING
    },
    //相册id
    image_class_id:{
        type:DataTypes.INTEGER
    }
}, {
    sequelize,
    modelName: "Image",
    tableName: "image",
    createdAt:"create_time",
    updatedAt:"update_time"
})
module.exports = Image